package threadShare;

import lombok.extern.slf4j.Slf4j;

/**
 * @author： pang-yun
 * @date： 2021-10-14 14:30
 * 功能目的 ：用于
 *              静态变量 用两个线程 各自增自减相同次数后结果不是0
 *==上下文切换时 导致线程内的运算结果没有写入主内存中    等再次切换回本线程时  才将结果写入  覆盖了前面的运行结果==
 * [main] INFO threadShare.ShareException - counter: -1731773
 */

@Slf4j
public class ShareException {

    static int counter =0;

    public static void main(String[] args) throws InterruptedException {
        Thread t1= new Thread("t1"){
            @Override
            public void run() {
                for (int i=0;i<50000000;i++){
                    counter++;
                }
            }
        };

        Thread t2=new Thread("t2"){
            @Override
            public void run() {
                for (int i=0;i<50000000; i++){
                    counter--;
                }
            }
        };


        t1.start();
        t2.start();
        t1.join();
        t2.join();

        log.info("counter: {}",counter);

    }
}
